using System.Windows.Controls;

namespace Silvery
{
    public delegate void AnimatFrameChangedEventHandler(ISpirit sender);
    public enum EmSpiritDataMode
    {
        ImageList,UserControl
    }
    
    /// <summary>
    /// 精灵接口
    /// </summary>
    public interface ISpirit : IAnimat
    {
        
        /// <summary>
        /// 精灵数据模式
        /// 该接口来决定是从控件创建，还是从zip文件
        /// </summary>
        EmSpiritDataMode SpiritDataMode { get; }
        /// <summary>
        /// 正在播放的帧数
        /// </summary>
        int CurrentFrameNumber { get; set; }
        /// <summary>
        /// 当前最大的帧数总数
        /// </summary>
        int CurrentFramesSum { get;  }
        /// <summary>
        /// 数据文件
        /// </summary>
        ISpiritData SpiritData { get; set; }
        ///// <summary>
        ///// 从控件创建，该方法并不全面，例如没有SpiritData数据
        ///// </summary>
        ///// <param name="control"></param>
        //void CreateSpiritFromUserControl(UserControl control);
        /// <summary>
        /// 精灵帧发生变化的时候的委托
        /// </summary>
        event AnimatFrameChangedEventHandler AnimatFrameChanged;
    }
}
